package org.example.pojo;

import lombok.Data;

import java.time.LocalDate;
import java.time.LocalDateTime;

@Data
public class AdPositionVO {
    // 广告位信息
    private Long adId;                // 广告位ID
    private String positionName;      // 广告位名称
    private Integer positionType;     // 广告位类型（1=Banner，2=侧边栏，3=弹窗，4=信息流）
    private String positionTypeName;  // 广告位类型名称
    private String dimensions;        // 广告尺寸
    private Integer price;            // 广告位单价（单位：分）
    private String state;             // 状态（0=下架，1=上架）
    private String stateName;         // 状态名称
    private LocalDate scheduledStart; // 排期开始时间
    private LocalDate scheduledEnd;   // 排期结束时间
    private LocalDateTime adCreateTime; // 广告位创建时间
    private LocalDateTime adUpdateTime; // 广告位更新时间

    // 客户信息
    private Long clientId;           // 客户ID
    private String clientName;        // 客户名称
    private String contactPerson;     // 联系人姓名
    private String contactPhone;      // 联系电话

    /**
     * 类型转换方法：将数字状态转换为可读文本
     */
    public String getStateName() {
        if ("1".equals(state)) return "上架";
        if ("0".equals(state)) return "下架";
        return "未知状态";
    }


    /**
     * 类型转换方法：将positionType转换为类型名称
     */
    public String getPositionTypeName() {
        switch (positionType) {
            case 1: return "Banner";
            case 2: return "侧边栏";
            case 3: return "弹窗";
            case 4: return "信息流";
            default: return "未知类型";
        }
    }

    /**
     * 价格转换：分转元（带两位小数）
     */
    public String getPriceYuan() {
        if (price == null) return "0.00";
        return String.format("%.2f", price / 100.0);
    }

    /**
     * 格式化排期信息
     */
    public String getScheduleInfo() {
        if (scheduledStart == null || scheduledEnd == null) {
            return "未设置排期";
        }
        return scheduledStart + " 至 " + scheduledEnd;
    }
}
